// 计算阅读时间的 hook
export default function useReadingTime(content: string){
  // 中文阅读速度：每分钟 300 字
  const CHINESE_WORDS_PER_MINUTE = 300;
  // 英文阅读速度：每分钟 160 词
  const ENGLISH_WORDS_PER_MINUTE = 160;

  // 计算中文字数
  const getChineseCount = (text: string) => {
    return (text.match(/[\u4e00-\u9fa5]/g) || []).length;
  };

  // 计算英文单词数
  const getEnglishCount = (text: string) => {
    return (text.match(/[a-zA-Z]+/g) || []).length;
  };

  // 移除 HTML 标签
  const stripHtml = (html: string) => {
    return html.replace(/<[^>]+>/g, '');
  };

  // 清理后的文本
  const plainText = stripHtml(content);

  // 计算中文和英文数量
  const chineseCount = getChineseCount(plainText);
  const englishCount = getEnglishCount(plainText);

  // 计算总阅读时间（分钟）
  const readingTime = Math.ceil(
    chineseCount / CHINESE_WORDS_PER_MINUTE +
    englishCount / ENGLISH_WORDS_PER_MINUTE
  );

  // 格式化显示时间
  const formatReadingTime = () => {
    if (readingTime < 1) {
      return '预计阅读时间不到 1 分钟';
    }
    return `预计阅读时间 ${readingTime} 分钟`;
  };

  return {
    readingTime,
    formatReadingTime
  };
};
